﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZaidimasSandelys.CustomDrawTools;
using ZaidimasSandelys.Models.Classes;
using ZaidimasSandelys.Models.DataStructures;

namespace ZaidimasSandelys.Models.Interfaces
{
    public interface ICurrentGame
    {
        /// <summary>
        /// Užkrauna žaidimo elementus ir sudeda į <code>DrawingCanvas</code> jei šis parametras nurodytas
        /// </summary>
        /// <param name="level">Žaidimo lygis</param>
        /// <param name="variant">Žaidimo variantas</param>
        /// <param name="canvas">
        ///     Konteineris kuris priima nuskaitytus elementus. Deuginimo procedūros gali paduoti NULLą.
        ///     Šiuo atvėju nuskaitomas tik headeris
        /// </param>
        void LoadGame(short level, short variant, IList<AllocatedVisual> canvas);
        event EventHandler<LoadCompletedEventArgs> LoadCompleted;
        void ClearGame();

#if DEBUG
        IAppData AppData { get; }
        GameHeader Header { get; }
#endif
    }
}
